<?php
namespace Admin\Controller;
use Hdphp\Controller\Controller;
//类型控制器
class CategoryController extends CommonController {
	protected $model;
	protected $type;
	//	自动验证是否登录
	public function __init() {
		parent::__init();
		$this -> model = new \Common\Model\Category;
		$this -> type = new \Common\Model\Type;
	}

	//		显示分类
	public function index() {
		
		//			获得数据库数据
		$data = $this -> model ->get();
		//			sp($data);die;
		//		变成树状结构
		$data = Data::tree($data,'cname');
		//			sp($data);

		//		如果没有数据先添加数据
		if (!$data) {
			View::success('请先添加分类', U('add'));
		}
		//	 分配分页
//		View::with('page', $page);
		//			分配
		View::with("data", $data);
		//			加载页面
		View::make();
	}

	//		添加
	public function add() {
		//		获的所属类型

		$typedata = $this -> type -> get();
		//	sp($typedata);die;
		//分配
		View::with('typedata', $typedata);

		if (IS_POST) {

			//		如果验证通过添加，
			if (!$this -> model -> store()) {
				//	显示错误
				View::error($this -> model -> getError());
			}
			View::success('添加成功', U('Category/index'));
		}
		View::make();
	}

	//		删除
	public function del() {
		//	获得删除元素的id
		$cid = Q('get.cid', 0, 'intval');
		//删除
		if ($this -> model -> del($cid)) {
			View::success('删除成功', U('index'));
		}

		View::make();
	}

	//		修改
	public function edit() {
		$cid = Q('get.cid', 0, 'intval');
		//3	如果提交
		if (IS_POST) {
			if ($this -> model -> edit($cid)) {
				View::success('修改成功', U('index'));
			}
			View::error($this -> model -> getError());
		}

		//1获得旧数据
		//		获得所属分类
		//		获得类型
		$typedata = $this -> type -> get();
		//		sp($typedata);die;
		View::with('typedata', $typedata);

		$olddata = $this -> model -> join('type', 'tid', '=', 'type_tid') -> where('cid', $cid) -> find();
		//		sp($olddata);die;
		//分配数据
		View::with('olddata', $olddata);
		//			2获得除了自己之外的分类的数据(cid不等于自己的cid)
		$cateData = $this -> model -> getNOmine($cid);
		//		sp($cateData);die;
		View::with('cateData', $cateData);

		View::make();
	}

	//添加子分类
	public function addSon() {
		//		获得父分类的id
		$fathercid = Q('get.cid', 0, 'intvale');
		//		获得所属类型
		$typedata = $this -> type -> get();
		//		分配类型
		View::with('typedata', $typedata);
		//获得父类的名称和id
		$fatherCate = $this -> model -> where('cid', $fathercid) -> field('cname', 'cid') -> find();
		View::with('fatherCate', $fatherCate);

		//		提交
		if (IS_POST) {
			if (!$this -> model -> store()) {
				View::error($this -> model -> getError());
			}
			View::success('添加成功', U('index'));
		}
		View::make();
	}

}
